const express = require('express')
const mysql = require('mysql2')
const bodyParser = require('body-parser')

const app = express()
const port = 3000

// 连接到MySQL数据库
const connection = mysql.createConnection({
  host: 'localhost', // MySQL服务器地址
  user: 'root', // MySQL用户名
  password: 'Ly@12345678', // MySQL密码
  database: 'mydb' // 你要连接的数据库名
})

// 连接到数据库
connection.connect((err) => {
  if (err) throw err
  console.log('成功连接MySQL')
})

// 使用body-parser中间件来解析JSON请求体
app.use(bodyParser.json())
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*') // 允许所有来源
  res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH')
  res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization')
  res.header('Access-Control-Allow-Credentials', true)

  // 预检请求（OPTIONS）的处理
  if (req.method === 'OPTIONS') {
    res.sendStatus(200)
  } else {
    next()
  }
})

// 登录接口
app.post('/api/login', (req, res) => {
  const { username, password } = req.body
  console.log('传入的参数为==》', req.body)

  // 验证输入
  if (!username || !password) {
    return res.status(200).send({ message: 'Username and password are required.', code: 201 })
  }

  // 查询数据库以验证用户
  const query = 'SELECT * FROM user WHERE username = ? AND password = ?'
  connection.query(query, [username, password], (err, results) => {
    if (err) throw err

    if (results.length > 0) {
      // 用户名和密码匹配
      res.send({ message: '登录成功', code: 200 })
    } else {
      // 用户名或密码错误
      res.status(200).send({ message: '用户名或密码错误', code: 401 })
    }
  })
})

// 启动服务器
app.listen(port, () => {
  console.log(`服务启动中,启动端口为 http://localhost:${port}/`)
})
